﻿using ConfExpert.Utility;
using DevExpress.XtraEditors;
using DevTeam;
using System;
using System.Data;
using System.Windows.Forms;

namespace ConfExpert.Forms.Destex
{
    public partial class TopKesme : XPopupForm
    {
        private DataRow drKesim;
        private string Barkod;
        //private bool yuklemeNumunesi;
        decimal TopMt;
        decimal Ihtiyac;
        decimal Fark;
        public decimal KesilecekMetre { get; set; }

        public TopKesme()
        {
            InitializeComponent();
        }

        public TopKesme(DataRow drKesim)
            : this()
        {
            this.drKesim = drKesim;
            btnOk.Enabled = false;
        }

        public TopKesme(DataRow drKesim, string Barkod, decimal TopMt)
            : this()
        {
            this.TopMt = TopMt;
            this.drKesim = drKesim;
            this.Barkod = Barkod;
        }

        int KumasId;
        private void TopBol_Load(object sender, EventArgs e)
        {
            KumasId = drKesim["ProductId"].ToInt();
            string KumasKodu = AppSession.Lookups.V_Kumas.FindByProductId(KumasId).Name;
            Ihtiyac = drKesim["QtySiparis"].ToDecimal();
            Fark = drKesim["Fark"].ToDecimal();
            Ihtiyac = (Fark == 0) ? Ihtiyac : Fark;
            KesilecekMetre = Ihtiyac;

            lblKumasKodu.Text = KumasKodu;

            //   lblKesilecekMt.Text = Ihtiyac.ToString();
            txtKesilecekMt.Text = Ihtiyac.ToString();
            lblBarkod.Text = Barkod;


            if (Ihtiyac > TopMt)
            {
                KesilecekMetre = TopMt;
                //   lblKesilecekMt.Text = TopMt.ToString();
                txtKesilecekMt.Text = TopMt.ToString();
            }

            lblTopmt.Text = TopMt.ToString();
            lblIhtiyac.Text = Ihtiyac.ToString();
        }

        private void lblBarkod_TextChanged(object sender, EventArgs e)
        {
            if (lblBarkod.Text.Length > 7)
            {
                DataTable dtTop = Session.DataManager.ExecuteDataTableByQuery("Select * from V_Top where RollId =" + lblBarkod.Text);
                if (dtTop.Rows.Count > 0)
                {
                    int TopKumasId = dtTop.Rows[0]["ProductId"].ToInt();
                    int KumasId = drKesim["ProductId"].ToInt();
                    decimal TopMt = dtTop.Rows[0]["Qty"].ToDecimal();
                    decimal Ihtiyac = drKesim["QtySiparis"].ToDecimal();
                    //Fark = drKesim["Fark"].ToDecimal();
                    //Ihtiyac = (Fark == 0) ? Ihtiyac : Fark;

                    if (KumasId != TopKumasId)
                    {
                        lblHata.Text = "Yanlış kumaş okuttunuz ! ";
                        btnOk.Enabled = false;
                        lblTopmt.Text = TopMt.ToString();
                        return;
                    }
                    else
                    {
                        lblHata.Text = "";
                        btnOk.Enabled = true;
                        lblTopmt.Text = TopMt.ToString();

                    }
                }
                else
                {
                    lblHata.Text = "Kumaş topu bulunamadı";
                    lblTopmt.Text = "";
                    btnOk.Enabled = false;
                }
            }
        }

        private void btnOk_Click(object sender, EventArgs e)
        {
            int KumasId = drKesim["ProductId"].ToInt();
            int OrdersLinesId = drKesim["DtxPOLinesId"].ToInt();
            //string TedarikLines = drKesim["Tedariklines"].ToStr();
            int RollId = Barkod.ToInt();

            ExecuteNonQuery("DtxTopBol", RollId, txtKesilecekMt.EditValue, OrdersLinesId, 0, "", WhoAmI, txtNotlar.Text, KumasId, (double)Ihtiyac);
            XtraMessageBox.Show("Top bölündü");
            this.DialogResult = DialogResult.OK;
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            this.DialogResult = DialogResult.Cancel;
        }
    }
}
